//----------------------------------------------------------------------- 
// PDS WITSMLstudio Core, 2018.3
//
// Copyright 2018 PDS Americas LLC
// 
// Licensed under the PDS Open Source WITSML Product License Agreement (the
// "License"); you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   
//     http://www.pds.group/WITSMLstudio/OpenSource/ProductLicenseAgreement
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//-----------------------------------------------------------------------

// ----------------------------------------------------------------------
// <auto-generated>
//     Changes to this file may cause incorrect behavior and will be lost
//     if the code is regenerated.
// </auto-generated>
// ----------------------------------------------------------------------

using Witsml131 = Energistics.DataAccess.WITSML131;
using Witsml141 = Energistics.DataAccess.WITSML141;
using Witsml200 = Energistics.DataAccess.WITSML200;

namespace PDS.WITSMLstudio.Store.Data
{
    /// <summary>
    /// Initializes MongoDb class and member mappings.
    /// </summary>
    public partial class MongoDbClassMapper
    {
        private void RegisterDataTypes()
        {
            // activity
            Register2<Witsml200.Activity>();

            // activityTemplate
            Register2<Witsml200.ActivityTemplate>();

            // attachment
            Register<Witsml141.Attachment>();
            Register2<Witsml200.Attachment>();

            // bhaRun
            Register<Witsml131.BhaRun>();
            Register<Witsml141.BhaRun>();
            Register2<Witsml200.BhaRun>();

            // cementJob
            Register<Witsml131.CementJob>();
            Register<Witsml141.CementJob>();
            Register2<Witsml200.CementJob>();

            // cementJobEvaluation
            Register2<Witsml200.CementJobEvaluation>();

            // channel
            Register2<Witsml200.Channel>();

            // channelSet
            Register2<Witsml200.ChannelSet>();

            // convCore
            Register<Witsml131.ConvCore>();
            Register<Witsml141.ConvCore>();

            // dataAssuranceRecord
            Register2<Witsml200.DataAssuranceRecord>();

            // depthRegImage
            Register<Witsml141.DepthRegImage>();
            Register2<Witsml200.DepthRegImage>();

            // downholeComponent
            Register<Witsml141.DownholeComponent>();
            Register2<Witsml200.DownholeComponent>();

            // drillReport
            Register<Witsml141.DrillReport>();
            Register2<Witsml200.DrillReport>();

            // fluidsReport
            Register<Witsml131.FluidsReport>();
            Register<Witsml141.FluidsReport>();
            Register2<Witsml200.FluidsReport>();

            // formationMarker
            Register<Witsml131.FormationMarker>();
            Register<Witsml141.FormationMarker>();

            // log
            Register<Witsml131.Log>();
            Register<Witsml141.Log>();
            Register2<Witsml200.Log>();

            // message
            Register<Witsml131.Message>();
            Register<Witsml141.Message>();

            // mudLog
            Register<Witsml131.MudLog>();
            Register<Witsml141.MudLog>();

            // mudLogReport
            Register2<Witsml200.MudLogReport>();

            // opsReport
            Register<Witsml131.OpsReport>();
            Register<Witsml141.OpsReport>();
            Register2<Witsml200.OpsReport>();

            // rig
            Register<Witsml131.Rig>();
            Register<Witsml141.Rig>();
            Register2<Witsml200.Rig>();

            // rigUtilization
            Register2<Witsml200.RigUtilization>();

            // risk
            Register<Witsml131.Risk>();
            Register<Witsml141.Risk>();
            Register2<Witsml200.Risk>();

            // sidewallCore
            Register<Witsml131.SidewallCore>();
            Register<Witsml141.SidewallCore>();

            // stimJob
            Register<Witsml141.StimJob>();
            Register2<Witsml200.StimJob>();

            // stimJobStage
            Register2<Witsml200.StimJobStage>();

            // surveyProgram
            Register<Witsml131.SurveyProgram>();
            Register<Witsml141.SurveyProgram>();
            Register2<Witsml200.SurveyProgram>();

            // target
            Register<Witsml131.Target>();
            Register<Witsml141.Target>();

            // toolErrorModel
            Register<Witsml141.ToolErrorModel>();
            Register2<Witsml200.ToolErrorModel>();

            // toolErrorTermSet
            Register<Witsml141.ToolErrorTermSet>();
            Register2<Witsml200.ToolErrorTermSet>();

            // trajectory
            Register<Witsml131.Trajectory>();
            Register<Witsml141.Trajectory>();
            Register2<Witsml200.Trajectory>();

            // tubular
            Register<Witsml131.Tubular>();
            Register<Witsml141.Tubular>();
            Register2<Witsml200.Tubular>();

            // wbGeometry
            Register<Witsml131.StandAloneWellboreGeometry>();
            Register<Witsml141.StandAloneWellboreGeometry>();

            // well
            Register<Witsml131.Well>();
            Register<Witsml141.Well>();
            Register2<Witsml200.Well>();

            // wellbore
            Register<Witsml131.Wellbore>();
            Register<Witsml141.Wellbore>();
            Register2<Witsml200.Wellbore>();

            // wellboreCompletion
            Register<Witsml141.WellboreCompletion>();
            Register2<Witsml200.WellboreCompletion>();

            // wellboreGeology
            Register2<Witsml200.WellboreGeology>();

            // wellboreGeometry
            Register2<Witsml200.WellboreGeometry>();

            // wellboreMarker
            Register2<Witsml200.WellboreMarker>();

            // wellboreMarkerSet
            Register2<Witsml200.WellboreMarkerSet>();

            // wellCMLedger
            Register<Witsml141.WellCMLedger>();
            Register2<Witsml200.WellCMLedger>();

            // wellCompletion
            Register<Witsml141.WellCompletion>();
            Register2<Witsml200.WellCompletion>();

            // wellLog
            Register<Witsml131.WellLog>();

        }
    }
}